package com.integral.service;

import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.alibaba.druid.util.StringUtils;
import com.integral.dao.IDeclarationDao;
import com.integral.entity.Declaration;
import com.integral.vo.DeclarationVo;

/**
 * @Description: 报单表Service类
 * @author zhaofan
 * @date 2018年05月08日 上午01:56:20
 */
@Service("declarationService")
public class DeclarationService {
	
	/**
	 * 注入报单表Dao
	 */
	@Resource
	private IDeclarationDao declarationDao;
	
	/**
	 * @Description: 新增报单表
	 * @param declaration 报单表
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:56:20
	 */
	public int addDeclaration(Declaration declaration) {
		if(StringUtils.isEmpty(declaration.getCreateEmp())){
			declaration.setCreateEmp("SYS");
		}
		if(null == declaration.getCreateTime()){
			declaration.setCreateTime(new Date());
		}
		declaration.setDeleteFlag(0);
		return declarationDao.addDeclaration(declaration);
	}
	
	/**
	 * @Description: 修改报单表
	 * @param declaration 报单表
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:56:20
	 */
	public int updateById(Declaration declaration) {
		return declarationDao.updateById(declaration);
	}
	
	/**
	 * @Description: 删除报单表
	 * @param id 主键
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:56:20
	 */
	public int deleteById(Long id) {
		return declarationDao.deleteById(id);
	}
	
	/**
	 * @Description: 根据ID查询报单表
	 * @param id 主键
	 * @return 报单表
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:56:20
	 */
	public Declaration findById(Long id) {
		return declarationDao.findById(id);
	}
	
	/**
	 * 查询报单信息总记录数
	 * @param declarationVo
	 * @return
	 */
	public Long findDeclarationCount(DeclarationVo declarationVo){
		return declarationDao.findDeclarationCount(declarationVo);
	}
	/**
	 * 查询报单信息列表
	 * @param declarationVo
	 * @return
	 */
	public List<DeclarationVo> findDeclaration(DeclarationVo declarationVo){
		return declarationDao.findDeclaration(declarationVo);
	}
	
	/**
	 * 修改处理状态
	 * @param declarationVo
	 * @return
	 */
	public int updateStatus(DeclarationVo declarationVo){
		if(StringUtils.isEmpty(declarationVo.getUpdateEmp())){
			declarationVo.setUpdateEmp("SYS");
		}
		declarationVo.setUpdateTime(new Date());
		return declarationDao.updateStatus(declarationVo);
	}
}